A memory which can store data in a transitory or permanent way generally includes of a set of cells. Each memory cell can be programmed in such a way as to take on a plurality of states represented by different values of a physical quantity, and is typically an electrical quantity. Each state has associated with it a corresponding logic value. In particular, a multiple-level memory cell can take on three or more different states or levels. Typically, there are memory cells with m=2.sup.n levels, where n.gtoreq.2. Each memory cell allows a whole number, n=log.sub.2 m, of data bits to be stored.
Reading the logic value stored in a memory cell is generally carried out by comparing the electrical quantity, which defines the state of the memory cell, with the same electrical quantity of suitably programmed reference cells. The memory cell is typically non-volatile, i.e., capable of retaining the stored information even in the absence of an electrical power supply.
In a reading method of the parallel type, the state electrical quantity of the memory cell is compared simultaneously with m-1 reference electrical quantities, each of which has a value lying between two adjacent values which can be programmed into the memory cell. This method enables the logic value stored in the memory cell to be read in a single comparison operation. A disadvantage of this method is the fact that m-1 separate comparator circuits are required to compare the state electrical quantity of the memory cell with the same electrical quantity of the m-1 reference cells. This results in considerable power consumption and an excessive occupation of space in a chip of semiconductor material in which the memory is formed. Moreover, the connections between the memory cell and the comparator circuits for the transfer of the state electrical quantities are subject to noise known as "kick-back". This disadvantage makes it necessary to have circuitry dedicated to the elimination of the noise, which in turn results in additional occupation of the area of the chip and a general slowing of the reading operation.
In a reading method of the serial type, the state electrical quantity of the memory cell is compared on successive occasions with a single reference electrical quantity whose value is varied in a predetermined way. In particular, in a method of the sequential type, the comparison electrical quantity initially has a value lying, for example, between the first and the second values which can be programmed into the memory cell, then a value lying between the second and third values which can be programmed, and so on. This reading method is interrupted as soon as the comparison electrical quantity exceeds the value of the state electrical quantity of the memory cell or when it as reached the value lying between the next to the last and the last programmable values. This method requires a number of comparison operations varying from 1 to m-1, and provides a mean of m/2.
With a different serial method of the dichotomous type; that is dividing into two parts, the comparison electrical quantity is initially set to a mean value between the minimum and the maximum values which can be programmed into the memory cell. By comparing this electrical quantity with the state quantity of the memory cell, it is possible to determine whether the state electrical quantity falls in a first range delimited by the minimum value and the comparison value, or in a second range delimited by the comparison value and the maximum value. A similar procedure is then carried out on this range, and so on, until the value of the state quantity of the memory cell is determined exactly. This reading method requires a number of comparison operations equal to log.sub.2 m.
The serial reading methods described above require only a single comparator circuit. The comparison operations, however, are rather complicated and therefore require dedicated circuitry which results in a greater occupation of the area of the chip. Moreover, these reading methods require a number of comparison operations which have to be carried out in succession, since it is necessary to await the result of a preceding comparison operation before selecting the comparison electrical quantity to be used for the next operation. This results in a considerable slowing of the reading operation, which may be unacceptable in various applications.
There is also a known reading method of a mixed serial-parallel type, in which the state electrical quantity of the memory cell is compared simultaneously with two or more reference electrical quantities having a value lying between the minimum value and the maximum value which can be programmed into the memory cell. The result of these comparisons can be used to determine the range defined by these electrical quantities to which the state quantity of the memory cell belongs.
This reading method then proceeds in a similar way up to the exact determination of the value of the state quantity of the memory cell. If k denotes the number of ranges defined by the comparison electrical quantities, this reading method requires a number of comparison operations equal to log.sub.2 m/log.sub.2 k. The mixed type reading method provides a compromise between the two reading methods, parallel and divided into two parts, as described above, since it requires a smaller number of comparator circuits (k-1) and enables the memory cell to be read with a limited number of comparison operations. However, the reading operation is rather complicated and too slow for many applications.
All the known reading methods require, in all cases, the presence of m-1 reference cells. Although in the reading methods of the serial and mixed type, not all the reference electrical quantities are used in every reading operation. This results in a corresponding increase in power consumption and an increase in the occupation of space in the chip. This also makes it necessary to program a large number of reference cells in a highly accurate way to ensure a high precision of the comparison operations, and consequently, to permit the use of a large number of different values for the state electrical quantity within a given range.